import {ReqGetBaseCategoryList,ReqGetFloor,ReqGetSlide} from "@/api"
// 存储 公共数据
const state = {
    categoryList:[],
    slide:[],   //首页轮播图数据
    floor:[]   //首页楼层数据
}

// 同步更新 state 中的数据，一般 mutations中的方法名全部为大写
const mutations = {
    // 更新 state categoryList 方法
    SAVE_CATEGORY_LIST(state,value){
        state.categoryList = value.slice(0,15)
    },
    SAVE_SLIDE_LIST(state,value){
        state.slide = value;
    },
    SAVE_FLOOR_LIST(state,value){
        state.floor = value;
    }
}

// 写异步方法，调用 mutations中的同步方法来更新state数据
const actions = {
    async GetCategoryList({commit}){
        // 调用 api 请求方法
        let data = await ReqGetBaseCategoryList()
        // 调用 mutations 方法更新 state 数据
        commit("SAVE_CATEGORY_LIST",data)
    },
    async GetSlide({commit}){
        let data = await ReqGetSlide();
        commit("SAVE_SLIDE_LIST",data);
    },
    async GetFloorList({commit}){
        let data = await ReqGetFloor();
        commit("SAVE_FLOOR_LIST",data);
    }
}

// 类似于 计算属性
const getters = {

}

export default {
    namespaced:true,
    state,
    mutations,
    actions,
    getters
}